解决Django项目启动Python Console报错和Run manage.py Task功能无法使用 您所在的位置:网站首页 python 终端运行py 路径报错 解决Django项目启动Python Console报错和Run manage.py Task功能无法使用

解决Django项目启动Python Console报错和Run manage.py Task功能无法使用

2024-07-08 09:00| 来源: 网络整理| 查看: 265

文章目录 直通车起因导致的问题解决办法

直通车

不想看长文的直接看这里,有兴趣的欢迎阅读后面的内容

解决办法: settings.py配置文件不能删,不过可以清空里面的内容,仅保留个空文件,在settings/__init__.py中导入所有开发环境的所有配置,即:

from .dev import *

说明:此方法仅可用于修改Djanog项目默认的配置文件路径导致错误的情况

起因

在Django项目中,项目配置一般都是放在settings.py中,但是这样也带来了新的问题,本地配置,测试服务器的配置和正式服务器的配置不一样,每次更新都要改来改去,特别麻烦,所以一般都会对配置的settings进行改造。最常见的,就是在项目同名目录下,新建一个名为settings的包,然后将各个环境的配置放入这个包下面,结构如下:

项目同名目录 │ asgi.py │ router.py │ settings.py # Django 原本的settings.py │ urls.py │ wsgi.py │ __init__.py │ ├─settings # 新建的包,用于存放各种环境的配置信息 │ │ base.py # 公共的基础配置,例如安装的app,中间件等 │ │ dev.py # 开发环境的配置,比如开启调试,本地数据库,安装调试插件 │ │ prod.py # 生产环境的配置,比如生产数据库,关闭调试模式等 │ │ __init__.py

通过上面的修改后,默认的settings就没有必要存在了,而且与新的包重名,一般我们都会选择删除它。同时,由于项目配置路径变了,项目的其他地方也需要做对应的修改,这里就不多阐述了,会修改项目结构的,应该都知道要改些什么地方。

为了照顾不懂的小白,这里还是讲一下吧!!!

修改manage.py文件

def main(): """Run administrative tasks.""" # 这个是原来的配置 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoDBOP.settings') # 下面是修改后的配置,就是指定settings文件位置 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'DjangoDBOP.settings.dev') ... if __name__ == '__main__': main()

如果是用Pycharm启动项目,需要修改Pycharm里面的项目配置

选右上角运行按钮左边的下拉框,点击,选择Edit Configuration。在弹出的窗口中,找到Configuration, 在Environment variables中,修改DJANGO_SETTINGS_MODULE的值,同样的,设置为使用的配置文件的位置

导致的问题

只要正确修改了项目的manage.py里面的配置文件路径,那么通过命令运行项目就没有问题了。

在Pycharm有两个好用的东西对Django项目非常友好,一个是Python Console,一个是Tools里面的Run manage.py Task。在Django项目中,打开Python COnsole系统会加载Django的运行环境进去,我们可以在里面很方便地调用项目的资源进行调试。而运行Run manage.py Task工具后也会打开一个控制台,在这里可以快捷地使用manage.py的命令,而且还有提示信息,非常方便,用过的都知道,我一般模型变更的命令都是在这里面执行的。

如果按照上面的步骤对配置文件进行修改,那么Pycharm提供的这两个工具都用不了了

Python Console还可以用,但是没有Django的环境了,而且启动就有报错,看着就很糟心。

Run manage.py Task直接就打不开了,按钮都是灰色的…

这是因为Pycharm使用项目默认的配置路径去加载配置文件,然后加载Django的运行环境,而我们修改了默认的配置文件,并且删除了settings.py,所以启动就报错了。

解决办法

在网上找了半天,没有找到完美的解决办法,都是建议直接在控制台使用python manage.py shell启动Python终端,但是这样也很麻烦啊,而且…这种方式没有语法提示**(Python Console里面可以通过Tab键不全或者提示备选项)。**

控制台的问题勉强算是解决了,但是,另一个manage.py工具怎么办? 想想每次做操作都要输入“前缀”——python manage.py就心有不甘,而且管理命令都老长了,比如:createsuperuser, makemigrations对于初学者而言肯定是不好记,这个时候就会怀念Pycharm那个有提示的工具了。

目前最好的解决办法

通过多次测试,发现只要不删除项目主目录下的settings.py文件就不会报错了。所以解决办法就是保留settings.py,不过,settings.py文件里面的内容可以全部删掉,只需要一个空文件就可以了,然后,需要在新建的settings包里面的__init__.py中导入开发所使用的环境的所有配置项

# settings/__init__.py from .dev import *

这样再运行Python Console终端就不会再报错了,而且Run manage.py Task工具也可以正常使用了。

以上就是django项目修改项目配置结构后导致Python Console功能启动报错的解决办法了。 如果大家有更好的解决办法,欢迎分享留言哦~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有